The present invention refers to an arrangement in a stored program controlled telecommunication equipment for inserting one of a number of insertion instructions in a sequence of control instructions to control the equipment. The insertion instructions and the control instructions are stored in memory element groups of a random-access-memory. The memory includes addressing/decoding circuits in order to address, in a known manner, by means of address numbers and timing pulses generated by a clock generator, the memory element groups for reading. In order to decode the read instructions, the address numbers are successively stepped concurrently with the instruction decoding.
A stored program controlled telecommunication equipment has, as a complement to the actual telecommunication equipment, a computer, the program memory of which is used for the real-time control of the telecommunication equipment. Control instructions are stored in the program memory. By reading, decoding and executing the control instructions in a certain order, i.e. by constructing and step-by-step executing a computer program, control functions are obtained and executed constituting the mentioned real-time control. An address number belongs to each instruction being stored in a memory element group, and the processor of the computer reads the instruction by means of the associated address number. Therefore the mentioned order is easily obtained if successively increasing address numbers are allotted to such instructions which are to be successively executed. However such instruction sequences use jump instructions and sub programs to achieve optional modifications of the actual instruction sequence and the order of the sequence. A more detailed explanation of the stored program control is not necessary for the present invention, it is only important to remember that each added instruction or each change of the order in which the control instructions are executed, results in changes in the state of the system or the mode of control.
In a stored program controlled telecommunication equipment the computer and its program are not only used for the execution of the actual teletechnical control functions but also to perform installation, maintenance or testing functions. With such applications there is often a need to modify a general instruction sequence by inserting at determined first sequence points only one of a number of extra instructions, hereinafter called insertion instructions, and by returning to the general sequence at determined other sequence points, which are ordinarily completely independent of the mentioned first sequence points. The insertion instructions are associated with addresses which have no relation at all to the addresses of the general sequence. Usually the insertion instructions are assembled in a table which is stored in a part of the program memory.
The need to now and then insert one single instruction can be explained by the following example: After a temporary disturbance which has been localized to a function block of the telecommunication equipment, the serviceability of this function block has to be examined in detail by means of a testing program designed for this purpose. As it happens, one of the devices of the function block is working questionably if it is fed with normal drive voltage. By means of an insertion instruction the device is fed with an increased drive voltage and the continued testing function will show if the device is working as it should. This example shows that an insertion instruction as well as an arbitrary control instruction is used to perform a planned change of the state of the system.
A trivial method for achieving the execution of insertion instructions is to provide the general instruction sequence with so called blind instructions which, when there is a need, are replaced by insertion instructions. Such a rigid way of modifying demands a writable program memory. Usually the program memory has memory elements whose contents cannot be changed (read-only type). Furthermore, the mentioned trivial method would always result in that the general sequence is resumed due to the uninfluenced order immediately after the insertion instruction. In reality it is desirable to be able to freely decide whether a number of general control instructions shall be jumped over or be repeated due to the instruction insertion.
Another method for achieving instruction insertions is to treat each insertion instruction as a sub program which is executed for example with the aid of the U.S. Pat. No. 3,292,155 or the U.S. Pat. No. 3,571,804 each of which deals with a re-entry point variation. In the first case each sub program comprises a return instruction which is individual for this sub program. In the second case the re-entry point, which heretofore has been called the second sequence point, is individually associated with its jump point, previously indicated as the first sequence point, independently of which a number of possible sub programs is inserted. Both variants have that disadvantage in common that each sub program is finished with an instruction which is ineffective for the real-time control of the system and by which is indicated, in the first case, the actual re-entry point and, in the second case, that the sub program is ended and that a stored return address is to be used for resuming the general instruction sequence. As long as it is a question of a sub program comprising a great number of instructions, the mentioned ineffective instruction at the end of the sub program has no practical meaning. But if each sub program consists of just one insertion instruction, as in the present case, the mentioned ineffective instructions would demand a memory capacity which is as large as the one required by the effective insertion instructions. Furthermore there would be considerable loss of time for the execution of the program.